1
継承と状態の進化
AI035Lesson 2
00:00

Rubyにおける継承は、メソッドを共有するだけではなく、 状態の進化です。たとえば、 KaraokeSong < Songというサブクラスを作成すると、子クラスが親クラスの構造を継承しながら自らのアイデンティティを洗練させる「~である」関係を確立します。

1. 初期化チェーン

この super キーワードは世代間の橋渡しです。 initializeメソッド内で super を呼び出すことで、引数を親クラスのコンストラクタに引き渡し、基本的なインスタンス変数(@name@artist)が設定された後に、サブクラスが独自の状態(@lyrics)を追加できるようにします。

class Song@name, @artistclass KaraokeSong@lyricssuper() は親クラスを呼び出し

2. メソッドの拡張

たとえば to_s のようなメソッドをオーバーライドすることで、振る舞いを拡張できます。新しい定義内では super を呼び出すことで、親クラスの文字列出力を取得し、サブクラスの新しいデータを単純に追加するだけで、クリーンな進化的な経路を維持できます。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>